// 卡牌工具类 - 提供花色和点数的转换功能

/**
 * 将后端花色枚举名称转换为前端显示符号和CSS类名
 * @param {string} suitName - 后端返回的花色枚举名称(SPADE/HEART/DIAMOND/CLUB)
 * @returns {Object} 包含symbol(显示符号)和class(CSS类名)的对象
 */
function convertSuit(suitName) {
    const suitMap = {
        'SPADE': { symbol: '♠', class: 'spades' },
        'HEART': { symbol: '♥', class: 'hearts' },
        'DIAMOND': { symbol: '♦', class: 'diamonds' },
        'CLUB': { symbol: '♣', class: 'clubs' }
    };
    return suitMap[suitName] || { symbol: '', class: '' };
}

//花色转换为枚举名称工具方法
function convertSuitToEnum(suitSymbol) {
    const suitMap = {
        '♠': 'SPADE',
        '♥': 'HEART',
        '♦': 'DIAMOND',
        '♣': 'CLUB'
    };
    return suitMap[suitSymbol] || '';
}

/**
 * 将后端点数数值转换为前端显示字符
 * @param {number} rankValue - 后端返回的点数数值(2-14)
 * @returns {string} 前端显示的点数字符(2-10,J,Q,K,A)
 */
function convertRank(rankValue) {
    const rankMap = {
        TWO: '2', THREE: '3', FOUR: '4', FIVE: '5', SIX: '6', SEVEN: '7', EIGHT: '8', NINE: '9', TEN: '10',
        JACK: 'J', QUEEN: 'Q', KING: 'K', ACE: 'A'
    };
    return rankMap[rankValue] || '';
}

// 转换牌值为枚举名称工具方法
function convertRankToEnum(rankSymbol) {
    const rankMap = {
        '2': 'TWO',
        '3': 'THREE',
        '4': 'FOUR',
        '5': 'FIVE',
        '6': 'SIX',
        '7': 'SEVEN',
        '8': 'EIGHT',
        '9': 'NINE',
        '10': 'TEN',
        'J': 'JACK',
        'Q': 'QUEEN',
        'K': 'KING',
        'A': 'ACE'
    };
    return rankMap[rankSymbol] || '';
}

// 暴露工具函数到全局
window.cardUtils = {
    convertSuit,
    convertRank,
    convertSuitToEnum,
    convertRankToEnum
};